package pwd.allen.androiddemo.activity;

import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.util.TypedValue;
import android.view.View;
import android.widget.CompoundButton;
import android.widget.RadioButton;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.PagerTabStrip;
import androidx.viewpager.widget.ViewPager;
import pwd.allen.androiddemo.R;
import pwd.allen.androiddemo.adapter.ImageFragmentPagerAdapter;
import pwd.allen.androiddemo.adapter.ImagePagerAdapter;
import pwd.allen.androiddemo.entity.Planet;
import pwd.allen.androiddemo.util.ToastUtil;

import java.util.List;

/**
 * 翻页视图
 */
public class ViewPagerActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener, CompoundButton.OnCheckedChangeListener {

    private List<Planet> list;
    private ViewPager vp_tab;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_view_pager);
        list = Planet.getDefaultList();

        //<editor-fold desc="自定义翻页标签栏样式">
        PagerTabStrip pts_tab = findViewById(R.id.pts_tab);
        // 设置翻页标签栏的文本大小
        pts_tab.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20);
        pts_tab.setTextColor(Color.BLACK);
        //</editor-fold>

        vp_tab = findViewById(R.id.vp_tab);

        RadioButton radioButton1 = findViewById(R.id.radioButton1);
        RadioButton radioButton2 = findViewById(R.id.radioButton2);
        radioButton1.setOnCheckedChangeListener(this);
        radioButton2.setOnCheckedChangeListener(this);
        radioButton1.setChecked(true);
    }

    private void initPagerTab(PagerAdapter pagerAdapter) {
        //<editor-fold desc="初始化翻页视图">
//        vp_tab.removeAllViews();  // 这里调用了的话连翻页标签栏都会被删掉
        vp_tab.setAdapter(pagerAdapter);
        // 给翻页视图添加页面变更监听器
        vp_tab.addOnPageChangeListener(this);
        vp_tab.setCurrentItem(3);
        //</editor-fold>
    }

    // 翻页状态改变时触发。state取值说明为：0表示静止，1表示正在滑动，2表示滑动完毕
    // 在翻页过程中，状态值变化依次为：正在滑动→滑动完毕→静止
    @Override
    public void onPageScrollStateChanged(int state) {

    }

    // 在翻页过程中触发。该方法的三个参数取值说明为 ：第一个参数表示当前页面的序号
    // 第二个参数表示页面偏移的百分比，取值为0到1；第三个参数表示页面的偏移距离
    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

    }

    // 在翻页结束后触发。position表示当前滑到了哪一个页面
    @Override
    public void onPageSelected(int position) {
        ToastUtil.show(this, "您翻到的手机品牌是：" + list.get(position).name);
    }


    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if (!isChecked) {
            return;
        }
        switch (buttonView.getId()) {
            case R.id.radioButton1:
                initPagerTab(new ImagePagerAdapter(this, list));
                break;
            case R.id.radioButton2:
                initPagerTab(new ImageFragmentPagerAdapter(getSupportFragmentManager(), list));
                break;
        }
    }
}